class CGameWorld;
class CGameWorldEvent;
class CGamePlayer;
class PlayerEntry;

namespace AVUI
{
    class ListView;
}

class CGamePlayerList
{
public:
    CGamePlayerList(CGameWorld* pGameWorld, AVUI::ListView* pList);
    ~CGamePlayerList();

    void OnGameWorldEvent(CGameWorldEvent* pEvent);
private:

    PlayerEntry* GetEntryForPlayer(CGamePlayer* pPlayer);
    PlayerEntry* AddRowForPlayer(CGamePlayer* pPlayer);
    void UpdateRowForPlayer(CGamePlayer* pPlayer);

    CGameWorld* m_pGameWorld;
    AVUI::ListView* m_pList;
    CGameWorld::CEventSubscription* m_pEventSubscription;
    static const int c_colCount = 11;
};

